unit MemoPropPage;

interface

uses SysUtils, Windows, Messages, Classes, Graphics, 
Controls, StdCtrls,ExtCtrls, Forms, ComServ, ComObj, StdVcl, AxCtrls;

type
  TMemoPropertyPage = class(TPropertyPage)
    memoContent: TMemo;
    Label1: TLabel;
    Label2: TLabel;

    procedure PropertyPageCreate(Sender: TObject);
  private
    { Private declarations }
  protected
    { Protected declarations }
  public
    { Public declarations }
    procedure UpdatePropertyPage; override;
    procedure UpdateObject; override;
  end;

const
  Class_MemoPropertyPage: TGUID = 
     '{CB66AAE1-5CAB-11CF-9D30-E8B6DBB1AE05}';

implementation

{$R *.DFM}

procedure TMemoPropertyPage.UpdatePropertyPage;
var i:integer;
begin
  { Update your controls from OleObject }
   memoContent.Lines.Clear;
   for i:=0 to OleObject.Lines.Count-1 do
   memoContent.Lines.Add(OleObject.Lines[i]);
end;

procedure TMemoPropertyPage.UpdateObject;
var i:integer;
begin
  { Update OleObject from your controls }
   OleObject.Lines.Clear;
   for i:=0 to memoContent.Lines.Count-1 do
      OleObject.Lines.Add(memoContent.Lines[i]);
end;

procedure TMemoPropertyPage.PropertyPageCreate(Sender: 
                                                                                        TObject);
begin

end;

initialization
  TActiveXPropertyPageFactory.Create(
    ComServer,
    TMemoPropertyPage,
    Class_MemoPropertyPage);
end.
